package com.aiapphub.SystemCode.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.aiapphub.SystemCode.entity.AppMapping;
import java.util.List;

/**
 * App映射服务接口
 */
public interface AppMappingService extends IService<AppMapping> {

    /**
     * 获取所有配置列表
     * @return 配置列表
     */
    List<AppMapping> listAllMappings();

    /**
     * 获取启用的配置列表
     * @return 启用的配置列表
     */
    List<AppMapping> listEnabledMappings();

    /**
     * 根据API Key获取配置
     * @param realApiKey 真实的API Key
     * @return 配置信息
     */
    AppMapping getMappingByApiKey(String realApiKey);

    /**
     * 根据App名称查询启用的 API Key
     * @param appName App名称
     * @return App映射信息，如果不存在或已禁用则返回null
     */
    AppMapping getByAppName(String appName);

    /**
     * 保存配置
     * @param mapping 配置信息
     * @return 是否成功
     */
    boolean saveMapping(AppMapping mapping);

    /**
     * 更新配置
     * @param mapping 配置信息
     * @return 是否成功
     */
    boolean updateMapping(AppMapping mapping);

    /**
     * 删除配置
     * @param realApiKey 真实的API Key
     * @return 是否成功
     */
    boolean deleteMapping(String realApiKey);

    /**
     * 启用/禁用配置
     * @param realApiKey 真实的API Key
     * @param status 状态(1:启用 0:禁用)
     * @return 是否成功
     */
    boolean updateStatus(String realApiKey, Integer status);
}
